fix(ci): pin playwright@1.58.2 and vite@7.3.1 to fix ubuntu CI failures#127
fix(ci): pin playwright@1.58.2 and vite@7.3.1 to fix ubuntu CI failures#127
Conversation
…esolve CI failures Two interrelated issues were breaking `build (ubuntu-latest)`: 1. Playwright version conflict: @argos-ci/playwright@6.4.2 (transitive via @argos-ci/storybook) required playwright@1.58.2 while root declared ^1.58.1, creating two versions. Playwright uses a singleton pattern and throws "Playwright Test did not expect test.describe() to be called here" when two @playwright/test instances coexist in the same process. 2. vite@6.4.1 phantom variant: @vitest/mocker@4.0.18 accepts vite ^6||^7. vite-plugin-istanbul@6.0.2 has a >=4 <=6 peer dep constraint, causing pnpm to resolve a separate vite@6.4.1 branch. This cascaded into a second @vitest/browser-playwright variant, leading to "Cannot find module vitest.mjs" failures from an incorrect hash-based .pnpm path. Fix: add pnpm.overrides for playwright=1.58.2, playwright-core=1.58.2, vite=7.3.1 to collapse all transitive resolutions to a single version each. Also bumps @playwright/test and playwright devDeps to ^1.58.2 to stay aligned. After pnpm install: vite@6 refs=0, playwright@1.58.1 refs=0 in lockfile. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t@1.58.2 variants Update committed workspace symlinks to reflect the new single-version resolutions applied by the pnpm.overrides in the previous commit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Required keyword not found in PR title or description. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 93fadbf5ec
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "@modelcontextprotocol/inspector": "^0.19.0", | ||
| "@openai/apps-sdk-ui": "0.2.1", | ||
| "@playwright/test": "^1.58.1", | ||
| "@playwright/test": "^1.58.2", |
There was a problem hiding this comment.
Pin @playwright/test instead of leaving it on a caret range
If we refresh the lockfile after Playwright publishes any newer 1.x release, @playwright/test can advance past 1.58.2 while the new overrides keep playwright/playwright-core fixed at 1.58.2. The lockfile shows @playwright/test depends on the matching playwright version (pnpm-lock.yaml:9555-9557), so that future install will recreate the cross-version skew this change is trying to eliminate and can break pnpm exec playwright ... in CI/local test runs. Pinning @playwright/test to the same exact version avoids the mismatch.
Useful? React with 👍 / 👎.
| "playwright": "1.58.2", | ||
| "playwright-core": "1.58.2", | ||
| "vite": "7.3.1" |
There was a problem hiding this comment.
Update FORJAMIE.md alongside this tooling change
/workspace/Design-System/AGENTS.md says any commit that changes config or tooling must update FORJAMIE.md in the same change-set, including a Recent Changes entry. This commit adds new pnpm.overrides and rewrites the lockfile, but FORJAMIE.md is untouched, so the repo’s required project map is now stale for anyone debugging future CI/install drift.
Useful? React with 👍 / 👎.
Summary
playwright,playwright-core, andviteinpnpm.overridesto collapse phantom duplicate peer dep variantsplaywrightand@playwright/testdevDependencies to^1.58.2pnpm-lock.yaml(vite@6 refs: 0, playwright@1.58.1 refs: 0)Motivation / Context
build (ubuntu-latest)has been failing on main with two distinct errors:Error: Playwright Test did not expect test.describe() to be called here— Playwright singleton conflict.@argos-ci/playwright@6.4.2(transitive via@argos-ci/storybook) resolvesplaywright@1.58.2while root declared^1.58.1, creating two versions in the virtual store. Playwright's global singleton fails when two@playwright/testinstances load in the same process.Error: Cannot find module '.../vitest@4.0.18.../vitest.mjs'—@vitest/mocker@4.0.18acceptsvite: ^6||^7as an optional peer dep.vite-plugin-istanbul@6.0.2has a peer constraint ofvite: '>=4 <=6', which caused pnpm to resolve a phantomvite@6.4.1branch. This cascaded into a second@vitest/browser-playwrightvariant (playwright@1.58.2 + vite@6.4.1), and a duplicate vitest instance with an invalid hash-based.pnpmpath.Closes #122 (Dependabot playwright bump superseded by this fix)
What changed?
pnpm.overrides: addedplaywright: "1.58.2",playwright-core: "1.58.2",vite: "7.3.1"devDependencies: bumpedplaywrightand@playwright/testfrom^1.58.1→^1.58.2pnpm-lock.yaml: regenerated — all vite@6 and playwright@1.58.1 variants removedHow to test
pnpm install— should resolve to single playwright@1.58.2 and vite@7.3.1pnpm test— 68 test files, 1693 tests passing locallygrep "vite@6\." pnpm-lock.yaml | wc -l→ 0grep "playwright@1\.58\.1" pnpm-lock.yaml | wc -l→ 0Risk & rollback
Risk level: low
The override pins patch-level versions already in use. vite-plugin-istanbul@6.0.2 already resolves with vite@7 in the other variant — this just prevents the phantom vite@6 variant from being created.
Rollback plan: Revert commit and run
pnpm installto restore previous lockfile state.Security / privacy impact
Security/AI risk section: N/A — dependency version pinning only.
Governance evidence
Threat model
AI and data impact
Verification evidence
pnpm test— 68 files, 1693 passed locallyReview of exception/incident updates
AI assistance
ai/prompts/2026-03-22-fix-ci-playwright-vite-overrides.yamlai/sessions/2026-03-22-fix-ci-playwright-vite-overrides.jsonAI Session Log
ai/sessions/2026-03-22-fix-ci-playwright-vite-overrides.jsonai/prompts/2026-03-22-fix-ci-playwright-vite-overrides.yaml🤖 Generated with Claude Code